{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "view-in-github"
      },
      "source": [
        "\u003ca href=\"https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/mnist_estimator.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "N6ZDpd9XzFeN"
      },
      "source": [
        "##### Copyright 2018 The TensorFlow Hub Authors.\n",
        "\n",
        "Licensed under the Apache License, Version 2.0 (the \"License\");"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {},
        "colab_type": "code",
        "id": "KUu4vOt5zI9d"
      },
      "outputs": [],
      "source": [
        "# Copyright 2018 The TensorFlow Hub Authors. All Rights Reserved.\n",
        "#\n",
        "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "# you may not use this file except in compliance with the License.\n",
        "# You may obtain a copy of the License at\n",
        "#\n",
        "#     http://www.apache.org/licenses/LICENSE-2.0\n",
        "#\n",
        "# Unless required by applicable law or agreed to in writing, software\n",
        "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "# See the License for the specific language governing permissions and\n",
        "# limitations under the License.\n",
        "# =============================================================================="
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "xqLjB2cy5S7m"
      },
      "source": [
        "## MNIST with the Estimator API\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "RNo1Vfghpa8j"
      },
      "source": [
        "## Overview\n",
        "\n",
        "This notebook trains a model to classify images based on the handwritten numbers in the MNIST dataset. After training, the model classifies incoming images into\n",
        "10 categories (0 to 9) based on what it's learned from the dataset. \n",
        "\n",
        "This notebook uses Estimator on a GPU backend. It is a reference point for converting an Estimator model to TPUEstimator and a TPU backend. This conversion is demonstrated in the [TPUEstimator](https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/mnist_tpuestimator.ipynb) notebook. The conversion enables your model to take advantage of Cloud TPU to speed up training computations.\n",
        "\n",
        "This notebook is hosted on GitHub. To view it in its original repository, after opening the notebook, select **File \u003e View on GitHub**."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "MmJgAdAYyWZ-"
      },
      "source": [
        "## Instructions"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "_I0RdnOSkNmi"
      },
      "source": [
        "\u003ch3\u003e\u003ca href=\"https://cloud.google.com/gpu/\"\u003e\u003cimg valign=\"middle\" src=\"https://raw.githubusercontent.com/GoogleCloudPlatform/tensorflow-without-a-phd/master/tensorflow-rl-pong/images/gpu-hexagon.png\" width=\"50\"\u003e\u003c/a\u003e  \u0026nbsp;\u0026nbsp;Train on GPU\u003c/a\u003e\u003c/h3\u003e\n",
        "\n",
        "  1. Create a Cloud Storage bucket for your TensorBoard logs at http://console.cloud.google.com/storage and fill in the BUCKET parameter in the \"Parameters\" section below.\n",
        "  1. On the main menu, click Runtime and select **Change runtime type**. Set \"GPU\" as the hardware accelerator.\n",
        "  1. Click Runtime again and select **Runtime \u003e Run All** (Watch out: the \"Colab-only auth\" cell requires user input). You can also run the cells manually with Shift-ENTER.\n",
        "\n",
        "\u003ch3\u003e\u003ca href=\"https://cloud.google.com/ml-engine/\"\u003e\u003cimg valign=\"middle\" src=\"https://raw.githubusercontent.com/GoogleCloudPlatform/tensorflow-without-a-phd/master/tensorflow-rl-pong/images/mlengine-hexagon.png\" width=\"50\"\u003e\u003c/a\u003e  \u0026nbsp;\u0026nbsp;Deploy to Cloud Machine Learning (ML) Engine\u003c/h3\u003e\n",
        "1. At the bottom of this notebook you can deploy your trained model to ML Engine for a serverless, autoscaled, REST API experience. You will need a GCP project name for this last part."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "Lvo0t7XVIkWZ"
      },
      "source": [
        "## Data, model, and training"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "qpiJj8ym0v0-"
      },
      "source": [
        "### Imports"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "colab_type": "code",
        "id": "AoilhmYe1b5t",
        "outputId": "2cd2003f-2faa-471d-fdd1-3517da8a0c4a"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Tensorflow version 1.12.0\n"
          ]
        }
      ],
      "source": [
        "import os, re, math, json, shutil, pprint, datetime\n",
        "import PIL.Image, PIL.ImageFont, PIL.ImageDraw\n",
        "import numpy as np\n",
        "import tensorflow as tf\n",
        "from matplotlib import pyplot as plt\n",
        "from tensorflow.python.platform import tf_logging\n",
        "print(\"Tensorflow version \" + tf.__version__)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "aBDGQWkbLGvh"
      },
      "source": [
        "### Parameters"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "_V_VbLELLJCS"
      },
      "outputs": [],
      "source": [
        "BATCH_SIZE = 32 #@param {type:\"integer\"}\n",
        "BUCKET = 'gs://' #@param {type:\"string\"}\n",
        "\n",
        "assert re.search(r'gs://.+', BUCKET), 'You need a GCS bucket for your Tensorboard logs. Head to http://console.cloud.google.com/storage and create one.'\n",
        "\n",
        "training_images_file   = 'gs://mnist-public/train-images-idx3-ubyte'\n",
        "training_labels_file   = 'gs://mnist-public/train-labels-idx1-ubyte'\n",
        "validation_images_file = 'gs://mnist-public/t10k-images-idx3-ubyte'\n",
        "validation_labels_file = 'gs://mnist-public/t10k-labels-idx1-ubyte'"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "Lzd6Qi464PsA"
      },
      "source": [
        "### Colab-only auth"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "both",
        "colab": {},
        "colab_type": "code",
        "id": "MPx0nvyUnvgT"
      },
      "outputs": [],
      "source": [
        "# backend identification\n",
        "IS_COLAB_BACKEND = 'COLAB_GPU' in os.environ  # this is always set on Colab, the value is 0 or 1 depending on GPU presence\n",
        "\n",
        "# Auth on Colab\n",
        "# Little wrinkle: without auth, Colab will be extremely slow in accessing data from a GCS bucket, even public\n",
        "if IS_COLAB_BACKEND:\n",
        "  from google.colab import auth\n",
        "  auth.authenticate_user()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {},
        "colab_type": "code",
        "id": "qhdz68Xm3Z4Z"
      },
      "outputs": [],
      "source": [
        "#@title visualization utilities [RUN ME]\n",
        "\"\"\"\n",
        "This cell contains helper functions used for visualization\n",
        "and downloads only. You can skip reading it. There is very\n",
        "little useful Keras/Tensorflow code here.\n",
        "\"\"\"\n",
        "\n",
        "# Matplotlib config\n",
        "plt.rc('image', cmap='gray_r')\n",
        "plt.rc('grid', linewidth=0)\n",
        "plt.rc('xtick', top=False, bottom=False, labelsize='large')\n",
        "plt.rc('ytick', left=False, right=False, labelsize='large')\n",
        "plt.rc('axes', facecolor='F8F8F8', titlesize=\"large\", edgecolor='white')\n",
        "plt.rc('text', color='a8151a')\n",
        "plt.rc('figure', facecolor='F0F0F0')# Matplotlib fonts\n",
        "MATPLOTLIB_FONT_DIR = os.path.join(os.path.dirname(plt.__file__), \"mpl-data/fonts/ttf\")\n",
        "\n",
        "# pull a batch from the datasets. This code is not very nice, it gets much better in eager mode (TODO)\n",
        "def dataset_to_numpy_util(training_dataset, validation_dataset, N):\n",
        "  \n",
        "  # get one batch from each: 10000 validation digits, N training digits\n",
        "  unbatched_train_ds = training_dataset.apply(tf.data.experimental.unbatch())\n",
        "  v_images, v_labels = validation_dataset.make_one_shot_iterator().get_next()\n",
        "  t_images, t_labels = unbatched_train_ds.batch(N).make_one_shot_iterator().get_next()\n",
        "  \n",
        "  # Run once, get one batch. Session.run returns numpy results\n",
        "  with tf.Session() as ses:\n",
        "    (validation_digits, validation_labels,\n",
        "     training_digits, training_labels) = ses.run([v_images, v_labels, t_images, t_labels])\n",
        "  \n",
        "  # these were one-hot encoded in the dataset\n",
        "  validation_labels = np.argmax(validation_labels, axis=1)\n",
        "  training_labels = np.argmax(training_labels, axis=1)\n",
        "  \n",
        "  return (training_digits, training_labels,\n",
        "          validation_digits, validation_labels)\n",
        "\n",
        "# create digits from local fonts for testing\n",
        "def create_digits_from_local_fonts(n):\n",
        "  font_labels = []\n",
        "  img = PIL.Image.new('LA', (28*n, 28), color = (0,255)) # format 'LA': black in channel 0, alpha in channel 1\n",
        "  font1 = PIL.ImageFont.truetype(os.path.join(MATPLOTLIB_FONT_DIR, 'DejaVuSansMono-Oblique.ttf'), 25)\n",
        "  font2 = PIL.ImageFont.truetype(os.path.join(MATPLOTLIB_FONT_DIR, 'STIXGeneral.ttf'), 25)\n",
        "  d = PIL.ImageDraw.Draw(img)\n",
        "  for i in range(n):\n",
        "    font_labels.append(i%10)\n",
        "    d.text((7+i*28,0 if i\u003c10 else -4), str(i%10), fill=(255,255), font=font1 if i\u003c10 else font2)\n",
        "  font_digits = np.array(img.getdata(), np.float32)[:,0] / 255.0 # black in channel 0, alpha in channel 1 (discarded)\n",
        "  font_digits = np.reshape(np.stack(np.split(np.reshape(font_digits, [28, 28*n]), n, axis=1), axis=0), [n, 28*28])\n",
        "  return font_digits, font_labels\n",
        "\n",
        "# utility to display a row of digits with their predictions\n",
        "def display_digits(digits, predictions, labels, title, n):\n",
        "  plt.figure(figsize=(13,3))\n",
        "  digits = np.reshape(digits, [n, 28, 28])\n",
        "  digits = np.swapaxes(digits, 0, 1)\n",
        "  digits = np.reshape(digits, [28, 28*n])\n",
        "  plt.yticks([])\n",
        "  plt.xticks([28*x+14 for x in range(n)], predictions)\n",
        "  for i,t in enumerate(plt.gca().xaxis.get_ticklabels()):\n",
        "    if predictions[i] != labels[i]: t.set_color('red') # bad predictions in red\n",
        "  plt.imshow(digits)\n",
        "  plt.grid(None)\n",
        "  plt.title(title)\n",
        "  \n",
        "# utility to display multiple rows of digits, sorted by unrecognized/recognized status\n",
        "def display_top_unrecognized(digits, predictions, labels, n, lines):\n",
        "  idx = np.argsort(predictions==labels) # sort order: unrecognized first\n",
        "  for i in range(lines):\n",
        "    display_digits(digits[idx][i*n:(i+1)*n], predictions[idx][i*n:(i+1)*n], labels[idx][i*n:(i+1)*n],\n",
        "                   \"{} sample validation digits out of {} with bad predictions in red and sorted first\".format(n*lines, len(digits)) if i==0 else \"\", n)\n",
        "    \n",
        "# utility to display training and validation curves\n",
        "def display_training_curves(training, validation, title, subplot):\n",
        "  if subplot%10==1: # set up the subplots on the first call\n",
        "    plt.subplots(figsize=(10,10), facecolor='#F0F0F0')\n",
        "    plt.tight_layout()\n",
        "  ax = plt.subplot(subplot)\n",
        "  ax.grid(linewidth=1, color='white')\n",
        "  ax.plot(training)\n",
        "  ax.plot(validation)\n",
        "  ax.set_title('model '+ title)\n",
        "  ax.set_ylabel(title)\n",
        "  ax.set_xlabel('epoch')\n",
        "  ax.legend(['train', 'valid.'])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "Lz1Zknfk4qCx"
      },
      "source": [
        "### tf.data.Dataset: parse files and prepare training and validation datasets\n",
        "Please read the [best practices for building](https://www.tensorflow.org/guide/performance/datasets) input pipelines with tf.data.Dataset"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "ZE8dgyPC1_6m"
      },
      "outputs": [],
      "source": [
        "def read_label(tf_bytestring):\n",
        "    label = tf.decode_raw(tf_bytestring, tf.uint8)\n",
        "    label = tf.reshape(label, [])\n",
        "    label = tf.one_hot(label, 10)\n",
        "    return label\n",
        "  \n",
        "def read_image(tf_bytestring):\n",
        "    image = tf.decode_raw(tf_bytestring, tf.uint8)\n",
        "    image = tf.cast(image, tf.float32)/255.0\n",
        "    image = tf.reshape(image, [28*28])\n",
        "    return image\n",
        "  \n",
        "def load_dataset(image_file, label_file):\n",
        "    imagedataset = tf.data.FixedLengthRecordDataset(image_file, 28*28, header_bytes=16)\n",
        "    imagedataset = imagedataset.map(read_image, num_parallel_calls=16)\n",
        "    labelsdataset = tf.data.FixedLengthRecordDataset(label_file, 1, header_bytes=8)\n",
        "    labelsdataset = labelsdataset.map(read_label, num_parallel_calls=16)\n",
        "    dataset = tf.data.Dataset.zip((imagedataset, labelsdataset))\n",
        "    return dataset \n",
        "  \n",
        "def get_training_dataset(image_file, label_file, batch_size):\n",
        "    dataset = load_dataset(image_file, label_file)\n",
        "    dataset = dataset.cache()  # this small dataset can be entirely cached in RAM, for TPU this is important to get good performance from such a small dataset\n",
        "    dataset = dataset.shuffle(5000, reshuffle_each_iteration=True)\n",
        "    dataset = dataset.repeat() # Mandatory for Keras for now\n",
        "    dataset = dataset.batch(batch_size, drop_remainder=True) # drop_remainder is important on TPU, batch size must be fixed\n",
        "    dataset = dataset.prefetch(10)  # fetch next batches while training on the current one\n",
        "    return dataset\n",
        "  \n",
        "def get_validation_dataset(image_file, label_file):\n",
        "    dataset = load_dataset(image_file, label_file)\n",
        "    dataset = dataset.cache() # this small dataset can be entirely cached in RAM, for TPU this is important to get good performance from such a small dataset\n",
        "    dataset = dataset.batch(10000, drop_remainder=True) # 10000 items in eval dataset, all in one batch\n",
        "    dataset = dataset.repeat() # Mandatory for Keras for now\n",
        "    return dataset\n",
        "\n",
        "# instantiate the datasets\n",
        "training_dataset = get_training_dataset(training_images_file, training_labels_file, BATCH_SIZE)\n",
        "validation_dataset = get_validation_dataset(validation_images_file, validation_labels_file)\n",
        "\n",
        "# In Estimator, we will need a function that returns the dataset\n",
        "training_input_fn = lambda: get_training_dataset(training_images_file, training_labels_file, BATCH_SIZE)\n",
        "validation_input_fn = lambda: get_validation_dataset(validation_images_file, validation_labels_file)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "_fXo6GuvL3EB"
      },
      "source": [
        "### Let's have a look at the data"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 181
        },
        "colab_type": "code",
        "id": "DaWNgUPKLz_9",
        "outputId": "8202c88b-0f45-4b23-ebd9-2535b679e11b"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\nRK5CYII=\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f00aae08160\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f00aae08320\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "N = 24\n",
        "(training_digits, training_labels,\n",
        " validation_digits, validation_labels) = dataset_to_numpy_util(training_dataset, validation_dataset, N)\n",
        "display_digits(training_digits, training_labels, training_labels, \"training digits and their labels\", N)\n",
        "display_digits(validation_digits[:N], validation_labels[:N], validation_labels[:N], \"validation digits and their labels\", N)\n",
        "font_digits, font_labels = create_digits_from_local_fonts(N)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "KIc0oqiD40HC"
      },
      "source": [
        "### Estimator model\n",
        "If you are not sure what cross-entropy, dropout, softmax or batch-normalization mean, head here for a crash-course: [Tensorflow and deep learning without a PhD](https://github.com/GoogleCloudPlatform/tensorflow-without-a-phd/#featured-code-sample)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "56y8UNFQIVwj"
      },
      "outputs": [],
      "source": [
        "# This model trains to 99.4% sometimes 99.5% accuracy in 10 epochs\n",
        "def model_fn(features, labels, mode):\n",
        "  x = features\n",
        "  \n",
        "  is_training = (mode == tf.estimator.ModeKeys.TRAIN)\n",
        "\n",
        "  x = features\n",
        "  y = tf.reshape(x, [-1, 28, 28, 1])\n",
        "\n",
        "  # little wrinkle: tf.keras.layers can normally be used in an Estimator but tf.keras.layers.BatchNormalization does not work\n",
        "  # in an Estimator environment. Using TF layers everywhere for consistency. tf.layers and tf.ketas.layers are carbon copies of each other.\n",
        "  \n",
        "  y = tf.layers.Conv2D(filters=6, kernel_size=3, padding='same', use_bias=False)(y) # no bias necessary before batch norm\n",
        "  y = tf.layers.BatchNormalization(scale=False, center=True)(y, training=is_training) # no batch norm scaling necessary before \"relu\"\n",
        "  y = tf.nn.relu(y) # activation after batch norm\n",
        "\n",
        "  y = tf.layers.Conv2D(filters=12, kernel_size=6, padding='same', use_bias=False, strides=2)(y)\n",
        "  y = tf.layers.BatchNormalization(scale=False, center=True)(y, training=is_training)\n",
        "  y = tf.nn.relu(y)\n",
        "\n",
        "  y = tf.layers.Conv2D(filters=24, kernel_size=6, padding='same', use_bias=False, strides=2)(y)\n",
        "  y = tf.layers.BatchNormalization(scale=False, center=True)(y, training=is_training)\n",
        "  y = tf.nn.relu(y)\n",
        "\n",
        "  y = tf.layers.Flatten()(y)\n",
        "  y = tf.layers.Dense(200, use_bias=False)(y)\n",
        "  y = tf.layers.BatchNormalization(scale=False, center=True)(y, training=is_training)\n",
        "  y = tf.nn.relu(y)\n",
        "  y = tf.layers.Dropout(0.5)(y, training=is_training)\n",
        "  \n",
        "  logits = tf.layers.Dense(10)(y)\n",
        "  predictions = tf.nn.softmax(logits)\n",
        "  classes = tf.math.argmax(predictions, axis=-1)\n",
        "  \n",
        "  if (mode != tf.estimator.ModeKeys.PREDICT):\n",
        "    loss = tf.losses.softmax_cross_entropy(labels, logits)\n",
        "\n",
        "    step = tf.train.get_or_create_global_step()\n",
        "    lr = 0.0001 + tf.train.exponential_decay(0.01, step, 2000, 1/math.e)\n",
        "    tf.summary.scalar(\"learn_rate\", lr)\n",
        "\n",
        "    optimizer = tf.train.AdamOptimizer(lr)\n",
        "    # little wrinkle: batch norm uses running averages which need updating after each batch. create_train_op does it, optimizer.minimize does not.\n",
        "    train_op = tf.contrib.training.create_train_op(loss, optimizer)\n",
        "    #train_op = optimizer.minimize(loss, tf.train.get_or_create_global_step())\n",
        "\n",
        "    metrics = {'accuracy': tf.metrics.accuracy(classes, tf.math.argmax(labels, axis=-1))}\n",
        "  else:\n",
        "    loss = train_op = metrics = None  # None of these can be computed in prediction mode because labels are not available\n",
        "  \n",
        "  return tf.estimator.EstimatorSpec(\n",
        "    mode=mode,\n",
        "    predictions={\"predictions\": predictions, \"classes\": classes},  # name these fields as you like\n",
        "    loss=loss,\n",
        "    train_op=train_op,\n",
        "    eval_metric_ops=metrics\n",
        "  )"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "DeIxkrv9Wihg"
      },
      "outputs": [],
      "source": [
        "# Called once when the model is saved. This function produces a Tensorflow\n",
        "# graph of operations that will be prepended to your model graph. When\n",
        "# your model is deployed as a REST API, the API receives data in JSON format,\n",
        "# parses it into Tensors, then sends the tensors to the input graph generated by\n",
        "# this function. The graph can transform the data so it can be sent into your\n",
        "# model input_fn. You can do anything you want here as long as you do it with\n",
        "# tf.* functions that produce a graph of operations.\n",
        "def serving_input_fn():\n",
        "    # placeholder for the data received by the API (already parsed, no JSON decoding necessary,\n",
        "    # but the JSON must contain one or multiple 'image' key(s) with 28x28 greyscale images  as content.)\n",
        "    inputs = {\"serving_input\": tf.placeholder(tf.float32, [None, 28, 28])}  # the shape of this dict should match the shape of your JSON\n",
        "    features = inputs['serving_input']  # no transformation needed\n",
        "    return tf.estimator.export.TensorServingInputReceiver(features, inputs)  # features are the features needed by your model_fn\n",
        "    # Return a ServingInputReceiver if your features are a dictionary of Tensors, TensorServingInputReceiver if they are a straight Tensor"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "RxpRgF874-ix"
      },
      "source": [
        "### Train and validate the model"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 4593
        },
        "colab_type": "code",
        "id": "TTwH_P-ZJ_xx",
        "outputId": "810289fa-4688-464f-8fb6-2197ddbd46fd"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "INFO:tensorflow:Using config: {'_model_dir': 'gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52', '_tf_random_seed': None, '_save_summary_steps': 10, '_save_checkpoints_steps': 1875, '_save_checkpoints_secs': None, '_session_config': allow_soft_placement: true\n",
            "graph_options {\n",
            "  rewrite_options {\n",
            "    meta_optimizer_iterations: ONE\n",
            "  }\n",
            "}\n",
            ", '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 468.75, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_service': None, '_cluster_spec': \u003ctensorflow.python.training.server_lib.ClusterSpec object at 0x7f00aad098d0\u003e, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}\n",
            "INFO:tensorflow:Not using Distribute Coordinator.\n",
            "INFO:tensorflow:Running training and evaluation locally (non-distributed).\n",
            "INFO:tensorflow:Start train and evaluate loop. The evaluate will happen after every checkpoint. Checkpoint frequency is determined based on RunConfig arguments: save_checkpoints_steps 1875 or save_checkpoints_secs None.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Create CheckpointSaverHook.\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Saving checkpoints for 0 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:loss = 3.221363, step = 0\n",
            "INFO:tensorflow:global_step/sec: 131.309\n",
            "INFO:tensorflow:loss = 0.06300494, step = 469 (3.573 sec)\n",
            "INFO:tensorflow:global_step/sec: 141.173\n",
            "INFO:tensorflow:loss = 0.18602926, step = 938 (3.322 sec)\n",
            "INFO:tensorflow:global_step/sec: 141.169\n",
            "INFO:tensorflow:loss = 0.0048653, step = 1407 (3.323 sec)\n",
            "INFO:tensorflow:Saving checkpoints for 1875 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Starting evaluation at 2018-12-02-21:31:45\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-1875\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Evaluation [1/1]\n",
            "INFO:tensorflow:Finished evaluation at 2018-12-02-21:31:49\n",
            "INFO:tensorflow:Saving dict for global step 1875: accuracy = 0.9872, global_step = 1875, loss = 0.039856445\n",
            "INFO:tensorflow:Saving 'checkpoint_path' summary for global step 1875: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-1875\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['serving_default']\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-1875\n",
            "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/estimator/estimator.py:1044: calling SavedModelBuilder.add_meta_graph_and_variables (from tensorflow.python.saved_model.builder_impl) with legacy_init_op is deprecated and will be removed in a future version.\n",
            "Instructions for updating:\n",
            "Pass your op to the equivalent parameter main_op instead.\n",
            "INFO:tensorflow:Assets added to graph.\n",
            "INFO:tensorflow:No assets to write.\n",
            "INFO:tensorflow:SavedModel written to: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/export/mnist/temp-b'1543786314'/saved_model.pb\n",
            "INFO:tensorflow:global_step/sec: 11.2124\n",
            "INFO:tensorflow:loss = 0.17025141, step = 1876 (41.828 sec)\n",
            "INFO:tensorflow:global_step/sec: 182.519\n",
            "INFO:tensorflow:loss = 0.008357742, step = 2345 (2.569 sec)\n",
            "INFO:tensorflow:global_step/sec: 180.884\n",
            "INFO:tensorflow:loss = 0.018714316, step = 2814 (2.593 sec)\n",
            "INFO:tensorflow:global_step/sec: 181.33\n",
            "INFO:tensorflow:loss = 0.021446247, step = 3283 (2.586 sec)\n",
            "INFO:tensorflow:Saving checkpoints for 3750 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Starting evaluation at 2018-12-02-21:32:35\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-3750\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Evaluation [1/1]\n",
            "INFO:tensorflow:Finished evaluation at 2018-12-02-21:32:38\n",
            "INFO:tensorflow:Saving dict for global step 3750: accuracy = 0.991, global_step = 3750, loss = 0.025054898\n",
            "INFO:tensorflow:Saving 'checkpoint_path' summary for global step 3750: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-3750\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['serving_default']\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-3750\n",
            "INFO:tensorflow:Assets added to graph.\n",
            "INFO:tensorflow:No assets to write.\n",
            "INFO:tensorflow:SavedModel written to: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/export/mnist/temp-b'1543786359'/saved_model.pb\n",
            "INFO:tensorflow:global_step/sec: 13.2764\n",
            "INFO:tensorflow:loss = 0.009053471, step = 3752 (35.326 sec)\n",
            "INFO:tensorflow:global_step/sec: 181.479\n",
            "INFO:tensorflow:loss = 0.18442132, step = 4221 (2.584 sec)\n",
            "INFO:tensorflow:global_step/sec: 183.38\n",
            "INFO:tensorflow:loss = 0.06688864, step = 4690 (2.564 sec)\n",
            "INFO:tensorflow:global_step/sec: 142.75\n",
            "INFO:tensorflow:loss = 0.07341187, step = 5159 (3.279 sec)\n",
            "INFO:tensorflow:Saving checkpoints for 5625 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Starting evaluation at 2018-12-02-21:33:18\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-5625\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Evaluation [1/1]\n",
            "INFO:tensorflow:Finished evaluation at 2018-12-02-21:33:21\n",
            "INFO:tensorflow:Saving dict for global step 5625: accuracy = 0.9919, global_step = 5625, loss = 0.02433909\n",
            "INFO:tensorflow:Saving 'checkpoint_path' summary for global step 5625: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-5625\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['serving_default']\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-5625\n",
            "INFO:tensorflow:Assets added to graph.\n",
            "INFO:tensorflow:No assets to write.\n",
            "INFO:tensorflow:SavedModel written to: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/export/mnist/temp-b'1543786402'/saved_model.pb\n",
            "INFO:tensorflow:global_step/sec: 13.5759\n",
            "INFO:tensorflow:loss = 0.047259383, step = 5628 (34.547 sec)\n",
            "INFO:tensorflow:global_step/sec: 181.762\n",
            "INFO:tensorflow:loss = 0.05273029, step = 6097 (2.580 sec)\n",
            "INFO:tensorflow:global_step/sec: 182.219\n",
            "INFO:tensorflow:loss = 0.0065530227, step = 6566 (2.574 sec)\n",
            "INFO:tensorflow:global_step/sec: 180.293\n",
            "INFO:tensorflow:loss = 0.24633394, step = 7035 (2.601 sec)\n",
            "INFO:tensorflow:Saving checkpoints for 7500 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Starting evaluation at 2018-12-02-21:34:00\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-7500\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Evaluation [1/1]\n",
            "INFO:tensorflow:Finished evaluation at 2018-12-02-21:34:03\n",
            "INFO:tensorflow:Saving dict for global step 7500: accuracy = 0.9934, global_step = 7500, loss = 0.019156769\n",
            "INFO:tensorflow:Saving 'checkpoint_path' summary for global step 7500: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-7500\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['serving_default']\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-7500\n",
            "INFO:tensorflow:Assets added to graph.\n",
            "INFO:tensorflow:No assets to write.\n",
            "INFO:tensorflow:SavedModel written to: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/export/mnist/temp-b'1543786444'/saved_model.pb\n",
            "INFO:tensorflow:global_step/sec: 13.752\n",
            "INFO:tensorflow:loss = 0.01225789, step = 7504 (34.104 sec)\n",
            "INFO:tensorflow:global_step/sec: 181.817\n",
            "INFO:tensorflow:loss = 0.002070228, step = 7973 (2.580 sec)\n",
            "INFO:tensorflow:global_step/sec: 182.989\n",
            "INFO:tensorflow:loss = 0.0005350555, step = 8442 (2.563 sec)\n",
            "INFO:tensorflow:global_step/sec: 182.368\n",
            "INFO:tensorflow:loss = 0.026766729, step = 8911 (2.572 sec)\n",
            "INFO:tensorflow:Saving checkpoints for 9375 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Starting evaluation at 2018-12-02-21:34:43\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-9375\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Evaluation [1/1]\n",
            "INFO:tensorflow:Finished evaluation at 2018-12-02-21:34:46\n",
            "INFO:tensorflow:Saving dict for global step 9375: accuracy = 0.9938, global_step = 9375, loss = 0.017522633\n",
            "INFO:tensorflow:Saving 'checkpoint_path' summary for global step 9375: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-9375\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['serving_default']\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-9375\n",
            "INFO:tensorflow:Assets added to graph.\n",
            "INFO:tensorflow:No assets to write.\n",
            "INFO:tensorflow:SavedModel written to: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/export/mnist/temp-b'1543786487'/saved_model.pb\n",
            "INFO:tensorflow:global_step/sec: 12.8443\n",
            "INFO:tensorflow:loss = 0.15341315, step = 9380 (37.426 sec)\n",
            "INFO:tensorflow:global_step/sec: 134.156\n",
            "INFO:tensorflow:loss = 0.0002842332, step = 9849 (2.585 sec)\n",
            "INFO:tensorflow:global_step/sec: 182.844\n",
            "INFO:tensorflow:loss = 0.00032512506, step = 10318 (2.569 sec)\n",
            "INFO:tensorflow:global_step/sec: 181.927\n",
            "INFO:tensorflow:loss = 0.00846606, step = 10787 (2.574 sec)\n",
            "INFO:tensorflow:Saving checkpoints for 11250 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Starting evaluation at 2018-12-02-21:35:28\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-11250\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Evaluation [1/1]\n",
            "INFO:tensorflow:Finished evaluation at 2018-12-02-21:35:31\n",
            "INFO:tensorflow:Saving dict for global step 11250: accuracy = 0.9939, global_step = 11250, loss = 0.017586086\n",
            "INFO:tensorflow:Saving 'checkpoint_path' summary for global step 11250: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-11250\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['serving_default']\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-11250\n",
            "INFO:tensorflow:Assets added to graph.\n",
            "INFO:tensorflow:No assets to write.\n",
            "INFO:tensorflow:SavedModel written to: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/export/mnist/temp-b'1543786532'/saved_model.pb\n",
            "INFO:tensorflow:global_step/sec: 12.7952\n",
            "INFO:tensorflow:loss = 0.0036112254, step = 11256 (36.654 sec)\n",
            "INFO:tensorflow:global_step/sec: 182.804\n",
            "INFO:tensorflow:loss = 0.00047459383, step = 11725 (2.566 sec)\n",
            "INFO:tensorflow:global_step/sec: 183.244\n",
            "INFO:tensorflow:loss = 0.0034961137, step = 12194 (2.559 sec)\n",
            "INFO:tensorflow:global_step/sec: 183.219\n",
            "INFO:tensorflow:loss = 0.13055202, step = 12663 (2.560 sec)\n",
            "INFO:tensorflow:Saving checkpoints for 13125 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Starting evaluation at 2018-12-02-21:36:13\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-13125\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Evaluation [1/1]\n",
            "INFO:tensorflow:Finished evaluation at 2018-12-02-21:36:16\n",
            "INFO:tensorflow:Saving dict for global step 13125: accuracy = 0.9944, global_step = 13125, loss = 0.017364949\n",
            "INFO:tensorflow:Saving 'checkpoint_path' summary for global step 13125: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-13125\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['serving_default']\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-13125\n",
            "INFO:tensorflow:Assets added to graph.\n",
            "INFO:tensorflow:No assets to write.\n",
            "INFO:tensorflow:SavedModel written to: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/export/mnist/temp-b'1543786577'/saved_model.pb\n",
            "INFO:tensorflow:global_step/sec: 12.7545\n",
            "INFO:tensorflow:loss = 0.01629746, step = 13132 (36.772 sec)\n",
            "INFO:tensorflow:global_step/sec: 183.609\n",
            "INFO:tensorflow:loss = 0.0024809996, step = 13601 (2.554 sec)\n",
            "INFO:tensorflow:global_step/sec: 181.988\n",
            "INFO:tensorflow:loss = 0.007379628, step = 14070 (2.580 sec)\n",
            "INFO:tensorflow:global_step/sec: 182.966\n",
            "INFO:tensorflow:loss = 0.0026895313, step = 14539 (2.560 sec)\n",
            "INFO:tensorflow:Saving checkpoints for 15000 into gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt.\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Starting evaluation at 2018-12-02-21:36:57\n",
            "INFO:tensorflow:Graph was finalized.\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-15000\n",
            "INFO:tensorflow:Running local_init_op.\n",
            "INFO:tensorflow:Done running local_init_op.\n",
            "INFO:tensorflow:Evaluation [1/1]\n",
            "INFO:tensorflow:Finished evaluation at 2018-12-02-21:37:00\n",
            "INFO:tensorflow:Saving dict for global step 15000: accuracy = 0.9944, global_step = 15000, loss = 0.017209128\n",
            "INFO:tensorflow:Saving 'checkpoint_path' summary for global step 15000: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-15000\n",
            "INFO:tensorflow:Calling model_fn.\n",
            "INFO:tensorflow:Done calling model_fn.\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['serving_default']\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n",
            "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n",
            "INFO:tensorflow:Restoring parameters from gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/model.ckpt-15000\n",
            "INFO:tensorflow:Assets added to graph.\n",
            "INFO:tensorflow:No assets to write.\n",
            "INFO:tensorflow:SavedModel written to: gs://stagingtemp/mnistjobs/job-2018-12-02-21:30:52/export/mnist/temp-b'1543786622'/saved_model.pb\n",
            "INFO:tensorflow:Loss for final step: 0.0018769283.\n"
          ]
        }
      ],
      "source": [
        "EPOCHS = 8\n",
        "steps_per_epoch = 60000 // BATCH_SIZE  # 60,000 images in training dataset\n",
        "MODEL_EXPORT_NAME = \"mnist\"  # name for exporting saved model\n",
        "\n",
        "tf_logging.set_verbosity(tf_logging.INFO)\n",
        "now = datetime.datetime.now()\n",
        "MODEL_DIR = BUCKET+\"/mnistjobs/job\" + \"-{}-{:02d}-{:02d}-{:02d}:{:02d}:{:02d}\".format(now.year, now.month, now.day, now.hour, now.minute, now.second)\n",
        "\n",
        "training_config = tf.estimator.RunConfig(model_dir=MODEL_DIR, save_summary_steps=10, save_checkpoints_steps=steps_per_epoch, log_step_count_steps=steps_per_epoch/4)\n",
        "export_latest = tf.estimator.LatestExporter(MODEL_EXPORT_NAME, serving_input_receiver_fn=serving_input_fn)\n",
        "estimator = tf.estimator.Estimator(model_fn=model_fn, config=training_config)\n",
        "\n",
        "train_spec = tf.estimator.TrainSpec(training_input_fn, max_steps=EPOCHS*steps_per_epoch)\n",
        "eval_spec = tf.estimator.EvalSpec(validation_input_fn, steps=1, exporters=export_latest, throttle_secs=0) # no eval throttling: evaluates after each checkpoint\n",
        "\n",
        "tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec)\n",
        "tf_logging.set_verbosity(tf_logging.WARN)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "9jFVovcUUVs1"
      },
      "source": [
        "### Visualize predictions"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 571
        },
        "colab_type": "code",
        "id": "w12OId8Mz7dF",
        "outputId": "f5450d2d-1c5b-49cc-b019-03d4fc92111a"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f00aad0f9e8\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "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\nWSxfvpz93R9//MFZmQICAkhFRYXGjRvX7FlvY6hpS7548eIWtyXfuXMnAaC+ffuy1xYuXEgLFy4k\nAGRqaspZXgUFBbRq1SpSU1OjadOm0bNnzxr1+4MHD5KDgwNlZmY2WquamppK+vr6rHlAXbP7rKws\nMjY2JgC0YMGCZtkfysPOzo6IRIOPnp5eswWVuggJCZGrCa/JmjVrJIR0LiguLqbDhw9LDZoGBgZk\naGhI48aNo9TU1Can//btWwkBTWyyJ4+CggKaNWsWp8J4ZWUl9e/fn1RUVNh67datG6Wnp1NZWRkd\nPXqUtLS0ZNa/kpISXbp0qUn5FhQUULdu3STqlGvb1aayePFiYhiGNDU1ydfXl3Jycpqdpixh/NNP\nPyVDQ0NSVVWl+fPnk76+vkQcT0/PJgkPjeX06dPsO3V2diZnZ+dmm07m5uaSgYEBaWpq0rFjxygv\nL49ev35NV65cobFjx0qsCDAMQ+fOneNkVTU1NZVMTEwaJGBfv36dzX/u3LnNznvWrFn/WmF8//79\nUnl07dqVUlJSmpzm9evXSUVFhVq3bk3r1q2rN6179+6RkZERtW/fvsl51sX48eNp/PjxEvKAmNGj\nR5OhoSFlZGQ0Ke34+HgaPXo0u6ekrrB69WoKDg4mbW1tcnZ2JlNTU9LW1mbNg+QpMDgTxmtunqzZ\n8cjSgru4uEgJJImJiWRmZsZqiJqKLGFcUVGR1qxZQ0lJSZSUlNTktGWRlpZG9vb25O7uTpMmTSKB\nQECOjo7k7u5O7u7udQ4wYmHc0tKyWR2+WMA7ffo0bdiwgZSVlTm1BWss78uWfMGCBQRAwgbb3t6e\n7O3tORXG8/PzycPDg8zMzOjChQuN/n1YWBiNGjWqWZv9VqxYwdrH6+jo0JEjR2R+i4cPH2Y7hbt3\n77aIedLp06epurqapkyZQrt37+Y8/drI05KLzVJqC+xcacpHjhwpc6CsufJmb2/f5FUtcX8hEAio\nffv2lJ+fL1N4iI2NpalTp5KNjQ0bf8iQIXTq1KnmPqJEewFE+xHS09MpMjKSrK2t5Q44NjY2dOvW\nrSbne/nyZQm7WU1NTZo4cSJNnDiRfvnlF07MnprC4sWLCQAZGhrSkydPOEu3rKyM3NzcpMbFtm3b\nsput8/PzKSAggNq2bcvGW7lyJWdlkEVISAi70c7GxobOnTsnU5PdFGoKp2KhRJ7wyTAipw5cmH9t\n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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f00886a5710\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "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\nAAAASUVORK5CYII=\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f008c508400\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f00aad51400\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuMAAABBCAYAAAB7NqpoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJztnXlYFNe29lcRhuYwNRzAJg7gOUbJ\ncYAQRTyCAsGBqxH1isMVo3j1qHHE64yKw1XAMYrzlIgHNU4h4YgTiMqNQxTH64QoODJEZVaGxvf7\ng6fqo+luRKjqSnL373nqSawuau3etbv2u9dee22uoKAAxGAwGAwGg8FgMAyOkdwFYDAYDAaDwWAw\n/q/CxDiDwWAwGAwGgyETTIwzGAwGg8FgMBgywcQ4g8FgMBgMBoMhE0yMMxgMBoPBYDAYMsHEOIPB\nYDAYDAaDIRPGdX1oY2NjqHIwGAwGg8FgMBh/WAoLC3WeZ55xBoPBYMjKu3fvaMSIEcRxHIWEhNDT\np0/lLhKDwWAYDCbGGQwRyMrKIqVSSVlZWXIXhcH43bFnzx6Ki4sjjuPI1dWVmjdvLneRGAwGw2Aw\nMc5oFACosrKS1Gq13EWRldDQUHJxcSGVSiV3Uf5wnDlzhjiOIz8/P7mLIjoLFiwgjuPon//8p9xF\nkYXTp0/T6dOnaeXKlURENHToUBo1apS8hfqD8PLlS5o3bx4NGDCAIiMjieM4MjIyos8//5wiIyMp\nMjKSsrOzZStfeXk5ffXVV2RkZESZmZmS26usrKSEhARycHAgjuOoe/fu9PbtW8ntMhj1gYlxBoPB\nYDAYDAZDJupcwMloPIcOHaIRI0bQ3bt3ycXFRe7iiEJ5eTkVFBTQwYMH6fDhw3TmzBmys7Ojbt26\nCdcEBgbS6NGjydj4j9/EkpKSKC0tjbZv304KhULUe5eWltLatWvpzZs3tGzZMvr6669py5YtRETU\nokULWrx4sSyexOfPn5OHhwdNmjSJFixYIKmtxYsXE1G1h/zMmTPk6+sryn337t1Ljx8/1vnZpUuX\nqLy8nE6cOEETJ06kjh070siRI0WxWxOO44jjODp+/DiFhIRofX758mXq1KmT6HZ/C9y4cYM2bNhA\nRER37twhlUpFo0ePpmbNmslcst8/8fHxdO3aNYqOjiYiop9++kloa9evX6fr168TEdH58+cpISFB\nljJmZmYKoUlSw8++HD9+nCwtLcnJyYkuXLhAhYWFZG5uLrl9Q6JWq6lfv3507NgxIiKKioqi2bNn\ny1wq6amqqqKxY8dSfHw8Xb9+nVq0aCGJjaNHj1JqaioVFBQI5wcPHkw+Pj6N6/8LCgqg72Bo8+DB\nA7x586Ze196+fRseHh5wcnLChQsXJC6Z9OTn5yMmJgZKpRJEBCKCsbExrK2tMXToULi7u8Pd3R2m\npqYgIgQGBkKtVotahqysLFy+fFnv5yUlJQgNDQURwdXVVVTb+vD29oZCocCDBw9Eu2dZWRlOnz4N\npVIJjuPAcRwSEhLg6+sr/JvjOLi4uGDjxo3YuHEjKisrRbP/PtavXw+O49CjRw/JbfFtjYgQEREh\nyj1TUlJgamoKIyMjrYPjOK1zpqammDhxIu7duyeKfZ4FCxaA4zhcu3ZN47xarca0adNgb2+Pp0+f\nimqzJpWVlcjNzUVUVBQWLVqEQYMGwdHREY6OjmjSpIlwbN++XVS7z549Q0BAgPBcOY6Dv7+/qDb+\nr/LixQu0a9euXu3a3Nwc69evl6Wcw4cPF8rx6NEjSWy8ffsWmzdvhqOjI4gI3t7euHLlCsrKyuDi\n4oLs7GxJ7MpJbm6uRh8RFRUld5EMQnZ2tvA+uX79uqj3Lisrw/nz5xEQEKBRtxzHCe+vmJiYet1L\nn95ukBg/ePAgDh48iJ49e2LUqFEYP348UlNTRRUj7+Phw4e4cuWKVpnfvXtnsDK8j8jISHAch40b\nN4p639zcXOzatQvDhg3DsGHDMGjQIA3BQkTo0KEDMjMzRbP58uVLuLq6atnp2LGj1rUpKSmws7MD\nEeHo0aOileHBgwdo0aIF/Pz89F4TFxcHIoKTkxM4jsO2bdtEs6+LJUuWgIiwdOlSAMDNmzdRUVHR\n6Pvu2bNH60e/efNmXLhwAd9++y0iIyNhaWmp8fkvv/zSaLv15dNPP4WjoyOWLFkimQ1fX1/4+vpq\ntDexKCsrQ7du3eotxvmjbdu2opVBrVYjNDQUHMfh/PnzWuXjn2tKSopoNmuzevVqnd+/dh2MGTNG\nNJtPnz7FhAkThI6MiKBQKHDy5EnRbNTk3bt3uHr1qkY7CgkJwfDhw7XeZzWP2bNnQ61Wi+ZQSE5O\nRr9+/YRj7Nix7/2btLS0ejt/AOD58+fo2rWrzrY7YMAAuLu7a5338vJqzNdqEN999x2MjY1hZGSE\nIUOGoKqqSnQbb9++RVhYmPA8ly5diqKiIgDVfaiPjw9evnwpul0AyMzMxObNmzUGnLX7zYsXL0pi\nOzExUTIxfuDAAeE7eHt7IzExEXl5ee/9u2fPnolWBn3ExMSILsZ5Xck7wUxNTdGlSxecPHkShYWF\nWLt2LQ4fPgyO4xAaGvpB9xRFjLu4uMDFxUWrgVlbW8PLy+u9R3BwcJ3ezfrw5Zdf6mzkQ4YMwaJF\ni4Tj7Nmzwg9QbGbOnInNmzdj8+bNWp+9ePECLi4usLGxQUZGRqPslJeXY+fOnQgMDERgYCDMzc31\ndiCurq4wMzMDEeHq1auNsluT58+fCzYsLCzw2WefISQkBMuXL9d5/bFjx0BEGDBggCj2y8rKhBdr\nYGCg3jKqVCooFArExcUhODgYU6dObbDN4uLiOr2ST548gbm5OVxdXfHrr78CAKZNm4b8/PwG20xJ\nSUFKSgocHBy0xHhteCHHH6NHj26w3frCD8SJCL6+vpLZSUlJ0dm+xeTJkydITU3FwIEDNQ5dXkX+\naNGiRaPtVlRUoKKiAsuWLROeXVBQEMrKyoRraorx4ODgRtvUxc2bN2FnZ6dXjLdu3RozZ87E7du3\nNcrWWHbu3KnhVSIiDBo0SLT781RVVaGoqEiYxfnQw8/Pr9Fi/M2bN9i+fTt69OgBExMTjfubmprW\nOcg5e/YsXF1d0aZNm3rbO3LkiMaz7NChA2JiYoSBek5ODpo0aSKrGD937hwcHBxgZGQES0tLXLly\nRRIb7dq1AxFBqVQiNjZWckfd69evcezYMfj5+cHa2lrDa1q7vXMcBwcHB9y/f1/UMuTn5wu2+UPM\nWa3AwECt72RjYwM7OzvY2dmhTZs2mDJlisbh5OQEKysrbN26VbRy1ObSpUuwt7cXXYwnJiYiMTER\npqamGDBgABISErSuCQ8PB8dx+Pbbb+t1T1HFeFJSEpKSkrB69WocO3YMq1evRkhICJo1awYiQosW\nLTQ6UBMTEzg5OcHJyUk4N3369IbWDwDg7t27WL58Ob777jvExcUhOjpamIqysrKClZUVbG1tQURw\nd3cXxJJY3L17F/b29kJoRm3Wrl0LjuOwZs2aBtsoLS3FkiVL0KdPH436tLGxgYeHB0JDQ7Fp0yb8\n/PPPeP78OZ4/f47S0lI0adJEdDFeVlaGHTt2ICYmpl5Tij/88IOoYnzfvn2CB+3t27c6r1m6dCmI\nCF26dAFQ7RHTd219yMzM1PlsgeoBEv9iiouLE85fuHDhgzxZNUlJSRFCBGq+7Jo1a4a5c+dqXX/9\n+nWNMJbmzZvj9evXDbJdm8zMTJSUlGicKykpEdq7paWl6FOBNYmIiNAS4mKFqLyPFy9e4JdffsEv\nv/yClStXii7GMzIykJGRofGMO3furOGli4uLk0yMV1ZWYsaMGRpiITo6utFOg/ri6ekpfDcLCwtY\nWFiIOovH8+LFi/cKbqVSCXt7ey0Bw3Ec5syZ0yC75eXlSE5ORnJyMmxsbIT7WVpaQqVSYcKECUhM\nTMSyZcsQFxeHly9fIicnB9evX8f169cxd+5cDfFuYWFRb9t5eXno2bMnjIyM4OPjozMMo3nz5rKJ\n8QsXLghC3MzMDPv27RP1/vv27cO+fftgaWkp9D9Sh6I8fvwYoaGhcHZ2Fn5PxsbG6Nq1K2bOnIlL\nly7hxo0bWLNmDWbOnImZM2eie/fu4DhO9Nmg2NhYjRBGFxcXUQfSY8aMwbZt23Dx4kUMGjQIbdq0\ngZWVlcYgQ1cIR8uWLZGamipaOWqSnp6Ozp07C9po69atoods6tOPhw4dAhF9UIidqGJcH69fv0Zy\ncjIKCwsFwZ6UlITU1FTk5eUhLy9PCF8QO3QDqPaW29nZISsrC1lZWYJXgogwYcIEUW1t3LgRRITl\ny5fr9A57e3s3Okzj7du3+Mtf/gIiQrNmzTB69GiMHj0aZ8+e1fs3paWlwghRTDH+ofBTwLNmzWr0\nva5evYrPPvtMIxykNjdu3ICtrS2sra3x888/f9D91Wo1iouLtc5NnDhRrxjnxaJY7aqkpAQ+Pj5a\nL7MWLVrg5s2bev+u9t+I0fGsWrUKZmZmWLJkiYYg3717N8zMzGBmZoaRI0eKEo6jD11iXKpwjePH\nj+s8/+uvvyIgIEBDuPADvcbAx/jXfG6xsbHC5wUFBejcubNkYnz27NlaITlhYWE4cOAADhw4IKqt\n2ixcuFDDQ8yLEymoLcb5ttu0aVPMmjULmzZtQk5ODgBg5MiRGtdaWVnV+Z6ti6SkJK3fsYODg9YM\n6o0bNzBs2DCNAXXtw87O7oPbfV5eHuLj4/HixQutz44ePQoLCwtZxHhFRYUgxI2MjNC7d29R7//9\n999rtOu5c+dKuo5m/PjxGD9+PFxcXITn1bRpU4wcORLx8fE6/yY1NRWpqanCrJiYYlytVgvhFMbG\nxjh//rxW+JsU3Lt3D5cuXcKlS5ewf/9+nDhxQnAoERG2b9/eKKfY+1i/fr0g+hcsWCCZndqcPn1a\ncDCHhoYiLS2tXn2iQcR4XRw6dAiHDh0Cx3Ho0KEDXr16Jer9nz59CkdHRy0P4tOnT0FEok7h5+Tk\noGnTpuA4Dlu2bMGWLVs0Pn/w4AEUCgUGDhyI8vLyRtlavnw5tmzZgsLCwnpdP2vWLBARXFxctDyb\nhiIrKwvm5uawsLDQ2SF8CLm5uejUqROICMOGDdMSzfw1/fr1AxFh3bp1H+yZLisr0wpHmTBhAhQK\nBX744Qet6xMTE2FmZgYvLy/RPNHp6ek6O+P3DSzEFuMlJSXo3r27EI70/Plz4bPp06cLwjgxMbFR\ndt6HXF5xnu+++w6dOnXSWuz2448/Nuq+2dnZwuxCzedWM6Zy3759Gp8FBwdj//792L9/v4Zobyg1\nwxR4MV5bnHl5eTX63VWb2NhYYS0Hx3GiDNTr4vvvvxfCQTw9PREfH68lkkpLSzF//nzY2toK5fL3\n929UPG9tMe7g4KDhFUxOTsasWbOgUqn0ivB27dph586doocxxMTEGDxmvLi4GMXFxRgwYICGzYbO\nIOri/PnzgrfdzMxM50yiWCQnJ2vM8vP9bXR0dJ1/FxUVpfVeE1OM1wx7E2tGuiGcPHlSKMfs2bMl\nddpkZmYKERn9+vWTzE5NMjIyEBERAXt7e61QJH9/f8HxrA9ZxXhubq4w/U5EOHTokGj35rlx4wYO\nHjyodd7V1RXNmjVDbm6uaLa2bt0KIkL79u1RWlqK0tJSjc/37dsHIyMjSV8I+uBj+VevXm1w2zz8\nQophw4Y16j6PHj2Cl5cXiAjdunVDVlaWzut27twJMzMztG/fXpQX/IABA0BEmDRpktZnFRUVQnjK\n999/32hbPGFhYTo75boWRWdnZ6N169aiivHdu3cL8eCdOnXCqVOnhM9qeoCkCCvgqb1oU0oxXlFR\ngTt37mDkyJHC8dVXX0GhUGgIFoVCgcjIyEbb+/LLL7Wesaurq8agbtiwYRqfm5ubCyJDjAWk/v7+\nwvdq06YN/Pz84OfnB5VKpREzPmTIENEE0+PHjzXWGZmamkruLCgtLUVMTIze2TQAmDNnjtbzaKxA\nWrVqlcb9du3ahWvXrqF///5o0qQJzMzMtDpxS0tLfPLJJ/jkk0+we/duyepGlxhftmyZJLaA6sH9\noEGDMGjQIMFep06dkJycLJqNixcvCs6x1atXS9r3xcbGokmTJuA4Ds7OznB2dsbGjRv1rkt7/Pgx\nUlJS4OrqCoVCIbT/Zs2aYenSpaINeMvLy9GtWzdwHAdbW1vRw3Lry9mzZ2FtbQ0iwuDBgyW3t3Ll\nShARVCqVhuNIbCorK3Ht2jWMGDFC+P06ODhg0aJFSExMxPnz5zFjxgyYmZnB29sb3t7eeu8lqxhf\nuHCh0AiVSiVu3bol2r118e7dO7x79w5bt26FQqGAi4uLTo9qQ8jIyIBCoYCZmRkuXbqk9XlBQQFU\nKhUcHR0lFSy6uHDhAoyNjUFEBov/rAkfHsR7DRrjXSopKREW6To6OiI1NRWvXr3Cq1evcPXqVWGq\n/+bNm7CwsICJiUmjs4mo1WpMmDABRKTXW7Rt2zYQEbp37641CGsoOTk5MDc31+jAAwICkJ2dXec0\n67lz57SERGPEeH5+viCYfvzxRxw8eFAY4W/atAlEhBkzZmDGjBkNtlEfdC3clCJERa1WY9myZfXK\nptJY7+GzZ8/Qs2dPWFlZaT2zmiF7hYWF8PPz0+sxFWMx1v3793H79m3cvn1bY4aSX/xXU4yLRUZG\nhiCYOI7TuRAKqB4cSZXhoiYlJSW4deuW1sCn5mLshlLbM+7n5ycIuJqHt7c3duzYgR07dhgsLWm/\nfv002nXr1q31OjmksNezZ0/R+mKg2iHRsmVLEBEGDhwo2n31UXM2Izw8HOHh4Vi5ciVWrlyJw4cP\nC/+/dOlSuLu7a8y42NnZYc2aNVizZk29MpB8CCdOnBDsfPnll6Leuz7w7xM+5Gr48OGSesSB6jA0\nPox35MiRktqaPHmyxgA6MDBQ56xV586dhVh9fcgmxlNTU4W800TU4Di8+lJUVIRRo0Zh1KhRICJ4\neHiImnKRX5hpbW2N+fPn4+rVqxqx2QkJCeA4DiEhIaLZrA9qtVoQUv379xdt5XhlZSWOHDmChQsX\nCseZM2d0ij4+fp6I0Ldv3wanq1Kr1fjHP/4hTP+dP38eXbp00SnS+GP48OGN/aqIjo6uU4hnZGTA\n3t4eJiYmOHfunM5rnj59+sELZnQtNOvTp897/y4oKEjjb7Zs2dKo585nnXB0dNTICFNSUiLUvyHi\nEHU9XylYsmRJvVMbNlaM79q1S6/ADggIQI8ePdCjRw94eXnpvIbPpCSlxyslJUXocIgIvXv3FkUk\nZmVloU+fPsJ36datm5bHvbKyEmvXrkVQUBBUKpVkad94zpw5o1XHmzZtEmWArStmvObRtWtXneFv\nUtOrVy+tskixT0B5eTkePnwoJHLgbfXu3VtUgfb27VsMGTJE6PN0hXI+ffoU27dvR+/evdGuXTtE\nREQ0KrtaTTGua9Ei/28LCws0bdpU+HenTp0kHWTWDFeU+rdTm8LCQnTt2hVdu3YVBplSxojz8Akb\nVCqV6GHPQHU6544dO6Jjx47Cs3Z2dsZ3332n929atmwJV1fXOvc40ae3jYjBYDAYDAaDwWDIg9Se\n8blz54KIEBAQgICAAMmmLm7fvo2lS5dq5JoMDQ0VfYT2vo0i+IOPCRNz05u64FcUK5VKIUNAQ6mq\nqhJWfbdq1Urn97Ozs0N4eDju3LkDoNobZGJiAhMTE9jY2DQqZIQPBal9BAQEIDw8HPHx8QgJCUFI\nSIjw2f79+xv1nfPz86FSqeDi4qK3zfBtOSwsDG/evMGaNWu0Fu9GRER8cJ7xFy9eaH3X/v37672e\nfz61/6YxM0AlJSXCmo4lS5YgLy8P6enpSE9Px4IFC4Q4Xz4USSp0PXepsqjo2k2tdixvzaMx3sy6\nPOPvOywsLHDt2jWtXTrFZtq0aRphKn5+fqK8r48dO6bxffr27Yvi4mJkZ2fj4sWLuHjxolYsvZOT\nk0bKUDEpKirSCk9xcHDAkydPRLm/Ps94586dkZCQIOrCxfpy/vx5jRkfPj49PT1ddFtHjx7VmGXi\nNzkSe7+Pn3/+GUSEVq1aaXlG09PT0atXLyF+uebRpUuXRu1qe+DAAURHRwvZVObOnYvY2FjExsYK\na2xqbjIl5kJ/ffDZS/r06WPQnZirqqqwZcsW4bt27NhRcq84r0/5hZuNXZumjyVLlmi8gxcuXFhn\n385voDZp0iSd6814ZAlTefPmDT777DOYmZnh559//uCUc+8jOzsbCxcuFHJ28g2CXzASHx+PwsJC\nHDp0CPfv3xflJZiRkYGoqChERESgW7duGge/QIN/gC1atMDs2bNF+KZ1U1paKsRO1bVYqT68e/dO\nWBTBDyoOHz6MR48e4dGjR7h16xYiIiLg5uYGouq83xMnToRKpRL+prELN2oudLG2tsb48eO1ruEX\nSRAR3NzcEBgY2KhYxMzMTBBV56Sv/TJLSEhAQkICjIyMYGJigkWLFsHPzw9KpRLHjh3TuLYhm/7U\nDFNRKBRQKBQ61yPwXL16VaOT9/DwgIeHR6N+szUXnY0ePRpKpVJoy/x/W7du3eD71wdd6QxJohAV\noDp2+pNPPtEIR/H29gbHcVi8eDGUSqXGZ/rSldWH3bt3awjd+h4+Pj6SD+gvX74MZ2dnYdFqkyZN\n0KRJE9y9e1eU+/NZtPiDf0fx6zP0DX7EXgB/6tQpnDp1SiPPOcdVhxTWlT70Q7l//76wCYouh0Jj\nN7yrDydOnMDu3bsRExOD5s2bC/nO+bbM53cfPXo0IiIi8PjxY1HsTp06VWMjqT179qCoqEiSjfe6\ndesGIhIyDF2+fBn+/v7w9/eHubk5rK2tsX79euzatQt5eXk4ceIEOnToACKSdGB769YtODs7g+M4\neHl5Sb4GYtasWcK7pb5bsovFwYMHNbSXvrUgYjJ9+nQhs5eNjQ1u3LjRqPuFhobqzFKVk5MjbB5Z\nV38MVIe0+Pj4wMXFRXBi6UMWMb548WIQ6d8xsaHcv38fM2bM0DnqreuwtrbG0KFDsXTp0kY/QF3M\nnj1bGKkVFBQYJG6qsrJS2JnSwsKi0TaPHz8OIhK8GfpisSoqKhAWFqaxGyifMacxnvmtW7cKP+6B\nAwdq5UpXq9UanvP27dujoKCg0avSi4uLhcwtSqVS4+AFcs225OXlpXPTm8aKcX5gp49Hjx5pZFCx\ntLQU0t41lJKSEiG+kfeABwUFYffu3UJ2FSJC06ZNcebMGZw5c6bBturC0GIcAF69eoVvvvkGhw8f\nxuHDh1FcXIznz5+je/fuGkLcw8Oj0b+tdevWaay9mD179nvFeEPy2F+8eBGDBw9+bzrUZ8+e4fDh\nw1o7Mq5atQqrVq1q6NfUIjY2VmMjq4EDB8LHx0dYbK5LjIeEhIg2GACAhw8fwsHBQWtn2y5duoi6\noPCXX35Bly5d6nymKpVKMkF+6tQp9OjRA1ZWVvVaC1FzM6vGpO2sqKjApEmThC3u27ZtK+lmO/n5\n+XB0dIStrS1ycnIwZswYcFx1fm1jY2NMmDBBZx8/evRocBwn2YZld+7cEYS4hYWF5B7xR48eCW26\ne/fuksRO6yMtLQ0ODg4gImEPFKmprKxEixYthPUIo0aNavQ99+7dC4VC0eCBTFFREUaMGAGO4+qV\nccvgYjwhIQHGxsawsbERbcHX1q1b0aJFC2FBqLGxMdq3b4/hw4dj+PDhWLx4scaUUc1jx44dGD58\nOBwdHQUPUHh4uCjl4nF2doZKpTJofu/79++DiGBkZCRKzlKFQgFTU1NkZma+NxvMtWvXBA9qzaND\nhw4N3uI4JiYGrq6uiIyM1LkA9PLlyyAi2Nvbw97eXvTMPHFxcejVqxeUSiWcnJyE3UyJCN7e3ti0\naVOdXrRVq1Z98CKwmmKcH9DoEiIXL17EJ598otGx12eh5/vIy8uDUqlEcHAw9u3bpxGGcubMGRAR\ngoODRc8AUBt9g2ixef78+Xs7yVatWmmIFSk6mnfv3glew6KiIvz444+iiPHNmzfDyMgIp0+f1vn5\npUuXsHHjRgwdOlRLoImxELo2d+/e1diJsuahS4x7eHiIKpBLSkq0wlL435qYKfYACLO0/BEQEIBT\np07B399f43xdi8AaSp8+fbQ29KmvGDcyMmpwDvuCggL06tVLY7GzvgXuYuLr6wsbGxshFe2nn36K\nkydP6u0Ht2zZAkdHR9E3G+I5deqUkEffwsJC9N01dVFzQL9nzx7J7fEUFxejR48e4DgOnp6eKCsr\nE3WnT31MnDhRo2/YtWuXKPeNiYkRZoo+JAteamoq2rVrJzgQ6uMUNKgYf/nypZBuSMx4HqVSib/8\n5S+YNm0atm3b1mAh9uTJE8yYMUPUjv7u3bswMTERRRzVl9evXyM4OBhEVOfq3Q+BiODn5/fe6w4d\nOgQLCwsQEVq3bo3w8HCNEauZmRkCAwM/eBfQ169f6xWzpaWlQsaY9evXY/369R907w+lsLAQbm5u\nwkrx+nh6Xr169cFZZHRlU9m7d6/GNStWrNASLYGBgZJOefMihq9vqaktwiMiIkTPL37u3Dl07doV\noaGhOj9/8OABPD09YWpqKogLBwcHg+xmu3r1aq120JD4/P79+2vdp0OHDjoFKd+m3N3dJcvwUVZW\npiVS9Ylxf39/UfK586SlpQmDjtqedzGzbPFMnTpVyw5Q7dHr2bOncH7atGmi2669zb0uMe7p6Qkv\nLy8hTIX/zNXVtUEbeWVkZMDLy0u4T1RUlKh7etTF4cOHhfajUql0bjD36tUrYY0Rx1XnBn/48KHo\nZblz546Q0tfZ2bnBzqgPIScnR9jN1tCx4lOmTBHCcAy103dlZaUQmkRUva5KrDWI2dnZ6NOnj/C+\n37p1a50Om/T0dAQEBAhlmTJlSr1tGUyMq9VqIRVMq1atRM13XVpaKlqS/Kqqqnrvalkf+Cn22iJK\nSo4ePQoigpWVlWhTgh4eHjAzM9O5i9SbN2+wbt06jSnmoKAgYWrs8ePHePz4MZYtWybsmmlqaor2\n7duLUjZ+kaqbm5so93sfx44dg7m5Oe7evVvvKfOGhKm8evUKzZs31+jEPT09UVhYiKdPn2Lx4sVC\nfdcU4lJPgfIe87Zt20q6oQIs3FJWAAARwUlEQVRQnVbPEOEpvGDp2bMngOo2fenSJcyfPx/z589H\ny5YttTyI+oS7mOTm5mrNeowZMwZqtfqD71VSUoLg4OD3ekZbt26N8ePH48yZM5LnBK69iLO2GLe0\ntMTUqVM1cq43lqKiInTs2FHL5uTJk0X1vNekthgvLS3FuXPnMGzYMCgUCuF8VFSU6LbfJ8Z/+OEH\nQbAlJSUhKSlJ2JW0ITslp6eno2XLlsJamhUrVjQ4nW1DuHLlisb7gt/Z1t3dHWPHjoW7u7uwlql5\n8+aIiIgQtc/nqR0jXnO3VSmJjIwU2pMh0xnu2rULpqamUKlUSEtLM5jds2fPajxvKb5zbGws2rRp\nA6LqJBXBwcEIDg7GmDFjhMPLywtKpRLm5uYYNGgQkpKSPug9bTAxzodNEBF++umnBt3j98jAgQPB\ncVyjM5nUl/z8fCH38+LFi0W7b1JSkhBfb21tjdDQUISGhsLFxQWWlpYa8ffLli3T+/KtrKxEcXEx\nkpOThYwrjeHQoUOwtLREmzZtRMt68D4CAwM/OA9vQ8Q4UJ3jvLZocHV1FV7yNb2Yzs7ODbLxoURG\nRoKIMGfOHMlt6YoXl4Lly5dDoVBApVJhwIAB6NGjh17Ramtri+3bt0s+6AEgTPnyh5mZGe7du9fg\n+5WVlSE6OhqLFy8WjkWLFgn/f+HCBckEqS4yMzMRHh6utQV8z5490bNnT9E20OIpKyvDxo0bhU1I\nOI4TdhrVF74jBoGBgVqDan7bbI7joFQqMX/+fEmm9PWJcScnpwaHoNRFUFAQjIyqt6AXc41BfRky\nZAgsLS2xaNEiDBs2DF26dIGtrS1sbW2hUCjQpUsX9OnTB8ePH5dEhN+5c0cjRrxTp04GeVfw8GI8\nMDDQYF7x5ORkYfOu3bt3G8QmT58+fYQ1iIGBgZKGA8fExGDw4MGCDqrZB5uYmCAwMBCpqakNem8Z\nRIxnZWXB2dkZRIRVq1aJtvHMb5nS0lKUlpaiffv26Ny5s0Fs5ufnw8fHR/AGiOnVqqqqEpLp1z7M\nzc0REhKC+Ph4g8SH8eTn58PPzw8KhcIgq7WB/7+T6ocOrt68edOgdp+Tk6MzvKC2F9HLy8tgg1wL\nCws0adLEYGsgarY1X19fSWykpqZqZUnRJcaDg4MN5uECgGbNmgnP2djYWGcGIUb9iYiI0BrY8u9q\nKfnHP/6h9/draWkpaSx1bTFuYmKCsWPHipophufFixdwdHSEi4sL1q5dK/r960N0dDQ+++wzjXOv\nX7/G69evJV/f8vDhQzg5OQkx4lJv6qOLvn37guM4DB061CD27t+/Lyz0nz59ukFs8jx58kRIW71l\nyxatlMJSUVJSgpKSEhQWFiIxMREHDhxotHPRIGKcz8NMRAZJ3/Rb4MqVK7hy5Qo4TroV2rXhd4pU\nqVSSxL+9e/cOlZWVWkdDpszFYObMmSAi0VOd/daoqKjA7Nmz9WbZ8PX1lVxM8KxatQqmpqYNiiNt\nKDVDVaTKLb53715YWlpqCXA+hlapVCImJka0cLj6snnzZsHjxIR44ygvL4efn5/Gb4efVlepVOjb\nt69ktmvmJua46swpHTp0wNKlSyXvE2NiYqBSqWBkZARnZ2ds375dMlsPHz6EkZGRqGFFH0pycjJa\ntmxp0IQJvF0+PpyI0KZNGyQlJRm0DMD/H8AbIn3y27dv4eHhAY7jMHLkSElmGuqCnzm1sLBAbm6u\nwdYlSAHbgZPBYDAYDAaDwfitIZZn/Ny5c7Cysvo/5xmPi4tDXFwcOI4TbeMEfdy7dw/37t2Dvb09\nFAoFxowZI6m93wIZGRmwsrKCSqUyaDyeXKjVaqjVasycOVMj7jQ8PNyg3tqgoCAolUrJp3vl4P79\n+xg7dqzgFR86dCjS0tIMuhiJIQ3l5eWwtbXVmlVycHBAdHQ0oqOjJfXqvXnzBsnJycLxIWnSGL99\nbt26hSZNmgiLNQ2xqY8+AgMD4ejoKMnseG1GjRoFjqvehEyKDZzeB7+Xyh9hdlyf3uYKCgqgT6jb\n2NjUW9RHRkbSvHnziIioVatWlJCQQK6uro0cKjB4ANDSpUuJiCgiIoJGjRpF3377rcylkp4FCxbQ\nf//3f1N8fDwFBQXJXRwGg/EbRq1Wk4+PD126dEk4Z2trSydOnKCOHTvKWDLG753y8nJyc3Oj9PR0\n6tixI504cYKIqtvXH5l9+/bRf/7nf5K1tTWlpKTQp59+KneRftcUFhbqPC+6GHd3d6fk5GSys7P7\n8FIy9HL37l3629/+RkRETZs2pdOnT1Pr1q1lLhWDwWD8tvjXv/5F/fr1IyKikJAQ2rlzJ5mYmMhc\nKsbvnZMnT1Lv3r3pT3/6E128eJHatWsnd5EMgoODA1VWVlJaWhr99a9/lbs4v3skF+MMBoPBYDAY\nDAZDN/rEuHFD/ojBYDAYDAaDwWA0HpZNhcFgMBgMBoPBkAkmxhkMBoPBYDAYDJlgYpzBYDAYDAaD\nwZAJJsYZDAaDwWAwGAyZYGKcwWAwGAwGg8GQCSbGGQwGg8FgMBgMmWBinMFgMBgMBoPBkAnRxfjV\nq1fJ29tb6/D09KSrV6+KbU6D3NxcmjdvHvXu3ZsCAgIoLCyMHj9+LKnN2uzdu5c8PT0pLS1NUjty\n1jOR/HVtqHqW23ZeXh7NmDGDevXqRYGBgRQREUGlpaWS262Joev60aNHFBISQt27dzeIPZ47d+7Q\nhAkTyM/Pj3r27ElhYWGUlZVl0DIYsq49PT3p73//u8b7Y8yYMZLb5dm3bx/169ePfHx8aOTIkXTz\n5k1J7cn5zszKyqKwsDAKCAigHj160JQpU+jhw4eS2iSS9z0t1++YyPBti4goPT2dJk+eTAEBARQQ\nEEArVqygiooKye3KUc9y648/Yh8huhj38PCg//mf/9E4IiMjqWnTptS2bVuxzWkwY8YMIiI6cOAA\nHTlyhExNTWnevHmS2qxJdnY27d271yC25KxnInnr2pD1LLftOXPmkEKhoAMHDtCePXsoNzeXoqKi\nDGbf0N/31KlTNGnSJGrevLnBbBIRFRcX06RJk6hTp0504sQJOnz4MCkUCpo1a5bByiBHu46JidF4\nh+zYscMgduPj42nfvn20YsUKOnXqFAUEBNDWrVvp3bt3ktmU650JgMLCwsjR0ZH+9a9/UUJCAjk5\nOVFYWBgBejfAFgW53tNy/Y6J5GlbxcXFNGXKFGrevDnFx8dTXFwcPXjwgDZu3CiZTSL56llO/fFH\n7SMkD1N5+/YtrVy5kmbMmEFmZmaS2SkpKaHWrVvTlClTyNramqytrWnw4MH04MEDKioqksxuTaKj\no2nw4MEGsVUbQ9Uzkfx1LWc9G9J2eno6/e///i9NnTqVbGxsyN7ensaNG0dJSUlUUFBgkDIYuq7f\nvHlDO3bsoK5duxrMJhFReXk5TZ06lUaNGkWmpqZkZWVFgYGBlJWVReXl5QYpg5zt2tDExsbS6NGj\nydXVlRQKBY0YMYI2btxIRkaGi5w01DuzoKCAnj9/Tr179yaFQkEKhYICAwMpJydH0l2u5XxPy/U7\nJpKnbd28eZMKCgpoypQpZGlpSU2aNKGpU6fSTz/9RGq1WjK7ctZzTQypP/6ofYTkb749e/aQi4uL\n5BVnaWlJCxYsIJVKJZzLzs4mCwsLsrCwkNQ2EdGJEycoLy+P/uM//kNyW7owVD0TyVvXctazoW3f\nuXOH7OzsyMHBQTj36aefUlVVFd2/f19y+3LUdVBQEH388ccGs8djb29PQUFBQof94sULOnjwIPn7\n+0veuRDJ1673799PAwcOJF9fXwoLC6Ps7GzJbebl5dGzZ88IAIWEhJC/vz99/fXXBg8JMtQ709bW\nltq3b08//vgjFRcXU1lZGR09epTc3NxIqVRKZlfO97Rcv2O52hYA4eCxtram0tJSevbsmWR25arn\n2hhSf/xR+whJxXhxcTHt37+fxo4dK6UZneTk5NCGDRto9OjR9NFHH0lqq6ioiNatW0fh4eFkbGws\nqS1dyFnPRIaraznrWQ7b+fn5ZG1trXFOoVCQqamp5J5xudu0XGRnZ9Pf//536t+/P1lYWNDChQsl\ntylXXbdr147at29P//znP+nAgQP07t07mjZtmqSePKJqwURElJiYSFFRUXTkyBFSKpU0ffp0qqys\nlNQ2j6HfmVFRUXT37l364osvqFu3bnTjxg1avHixQWzzGLJPlAu52pabmxvZ2NhQTEwMlZaW0qtX\nr2jHjh1kZGQk6ezHbwG59YehkaqPkFSMHzlyhP76179S+/btpTSjRUZGBo0ZM4Z8fX1pxIgRkttb\nt24d+fv7GyRWWxdy1TORYetaznqWwzbHcTpjSqWOMyWSv03LhZOTE50/f57i4+OJiOjrr7+WXJzK\nVde7du2ir776iv70pz+Ro6MjzZ49mzIzM+n27duS2uXb7/Dhw6lZs2akVCpp2rRp9OzZM8lt8xjy\nnalWqyksLIw+//xzOnnyJJ08eZI8PT1p8uTJVFZWJrl9IsP3iXIhV9uysrKiNWvW0IMHD6hv3740\nceJE+uKLL4jjuD+8M0NO/SEHUvURkorxU6dOka+vr5QmtLhy5QqNGzeOBg0aRHPmzJHcXlpaGl2+\nfJkmTJgguS19yFHPRIataznrWS7btra2Wl6V0tJSqqyspD//+c+S2f0ttGm5+fjjj2nevHl0584d\nunHjhmR2fkt17eTkRB999BG9fPlSUjt826056+Po6EgfffQR/frrr5La5jHkO/Py5cuUkZFBU6ZM\nIaVSSUqlkqZOnUovXrwwSNYcQ/eJciJn22rXrh1t376dUlJSaP/+/dS6dWuqqqoiR0dHSe3KjVz6\nQ27E7iMkE+MvXryg9PR0gwbZ37lzh2bNmkWzZs2iUaNGGcTm0aNHKT8/n/r37089evSgHj16EFH1\nKvaVK1dKbl+OeiYyfF3LWc9y2W7bti0VFBRoxPHevn2bTE1NydXVVTK7crdpOUhKSqIhQ4ZozDrw\nacmk9GzJVdf37t2jVatWaXzfJ0+eUFVVleRZChwdHcnS0pLS09OFc7m5uVRVVUVOTk6S2iYy/DtT\nrVZrzWap1WpJs3vwyNEnyolcbauiooISExM1wgfPnz9PzZo101jz80dDLv0hB1L3EZL1Mnfv3iVT\nU1Nq0aKFVCY0qKqqoqVLl1JoaCj16tXLIDaJiKZNm0bjxo3TOPfll19SeHg4eXp6Sm7f0PVMJE9d\ny1nPctlu1aoVubu707p162ju3LlUXl5O27Ztoz59+pClpaVkduVu03Lg5uZGv/76K23YsIHGjBlD\narWaNmzYQCqVitq0aSOZXbnq+s9//jMdPXqULC0tadSoUVRcXEwrVqwgNzc3at26tWR2iao7rn//\n93+n2NhY8vDwoI8//pjWr19PrVq1or/97W+S2iYy/DuTX6i5ceNGGjduHBkZGdHWrVvJ1taW3Nzc\nJLMrV58oJ3K1LRMTE9q5cyfduHGD/uu//oseP35MO3bsoPHjx0tm87eAHPpDLqTuIyQT4y9fviRr\na2uDpaq6desWPXz4kLZs2UJbt27V+Gz9+vXk4eEhiV0+ZVRtbG1tdZ4XG0PXM5E8dS1nPctpOzIy\nkqKjoykoKIg++ugj+uKLLygsLExSm3J+30GDBlFOTg5VVVVRVVUVeXt7ExHRvHnz6N/+7d8ks+vg\n4EAbNmygdevWUc+ePUmhUFC7du3om2++IYVCIZlduerawcGBvvnmG9qwYQN9//33xHEc+fj4SN62\neMaNG0eVlZU0efJkevPmDX3++ee0du1ag7zHDP3OtLa2ppiYGIqJiaEBAwYQAHJ1daX169dLOqiW\nq08kku93TCRP2+I4jiIjIykqKooCAgLI2tqaQkJCKCgoSDKbRPLWM5E8+uOP2kdwBQUF0q8GYzAY\nDAaDwWAwGFoYbjjDYDAYDAaDwWAwNGBinMFgMBgMBoPBkAkmxhkMBoPBYDAYDJlgYpzBYDAYDAaD\nwZAJJsYZDAaDwWAwGAyZYGKcwWAwGAwGg8GQCSbGGQwGg8FgMBgMmWBinMFgMBgMBoPBkAkmxhkM\nBoPBYDAYDJn4fztiL6zXiDM1AAAAAElFTkSuQmCC\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f008ec840b8\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f008ecc1860\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f008717ae48\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "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\n+/eTv78/9e3bl44fP650cyTl6dOnREQUGBhIp06dov79+1NMTAz97W9/U7hlDIY47N27l/71r39R\nv3796IcffpBN19/fn4iIvv/+e3JwcKCjR49Sx44dZdNnMBh/Tp4/f17pz83EFjpx4oTwbysrK/r7\n3/8utoSipKSkkLOzMzk7O/+lDfFr164REdHatWuJiOjf//43vfnmm0o2SXJ+//13GjFiBNnY2NC6\ndeuUbo7kDB8+nIiITp8+TT4+PvTNN98wQ5zxlyIgIEARZ9D+/fuJiIjjOAoPD2eGOIPBqBbRPeMM\nBoPBYLzOqFRl6Vgcx9GpU6eoZ8+eCreIwWD8GajKM16tMc5gMBgMBoPBYDCkg1VTYTAYDAaDwWAw\nFIIZ4wwGg8FgMBgMhkIwY5zBYDAYDAaDwVAIZowzGAwGg8FgMBgKwYxxBoPBYDAYDAZDIZgxzmAw\nGAwGg8FgKAQzxhkMBoPBYDAYDIUQ/QTOK1eu0NSpUyv8vKSkhL766itJTyJLT0+n5cuXU1xcHKlU\nKurSpQuFhoaStbW1ZJpERElJSaTX6ykhIYGIiPr160chISFkYWEhqW5ycjKtXbuW4uLiiOM4ateu\nHU2bNk3yU0+V7ON79+7R/PnzKSUlhWJjYyXTKc/r1MdK9q8xkZGRtGbNGtqwYQO98847kuvFx8eT\nXq+nW7dukbm5Obm5udG0adNIq9VKqvv06VNau3YtXblyhQwGA7Vv355CQkLIxcVFUl0iZcaTUvM0\nkTLjWOnxtGvXLtq1axdlZWVRy5Yt6X/+53+oQ4cOkmp26dKFzMzMhMOPiIhcXV1p8+bNkuoaI/f8\nodSzSSldpeZLY+TuYynnD9E94x07dqT/+7//M7k+//xzatasGbm5uYktZ8KsWbNIrVZTdHQ07dix\ng54+fUpLly6VVDM3N5emTp1Kzs7OdODAAdq5cyfdvn2b1q9fL6kuANLpdOTo6Eg//PADHTp0iJo2\nbUo6nY4Aac9xUqqPT5w4QZMnTyZnZ2fJNCrjdetjJccwT2pqKkVGRsqiRVTWx5MnT6bOnTvTjz/+\nSDExMaRWqyk0NFRy7RkzZhARUXR0NO3bt48sLCxo9uzZkusqNZ6UmKeJlBvHSo6nAwcO0K5du2j5\n8uV04sQJ8vX1pY0bN9LLly8l1SUi0uv1Jn+znIa43POHUmNJyWeiUvMljxLPCCnnD8nDVAoLCyki\n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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7f0086d54588\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# recognize digits from local fonts\n",
        "predictions = estimator.predict(lambda:  tf.data.Dataset.from_tensor_slices(font_digits).batch(N),\n",
        "                                  yield_single_examples=False)  # the returned value is a generator that will yield one batch of predictions per next() call\n",
        "predicted_font_classes = next(predictions)['classes']\n",
        "display_digits(font_digits, predicted_font_classes, font_labels, \"predictions from local fonts (bad predictions in red)\", N)\n",
        "\n",
        "# recognize validation digits\n",
        "predictions = estimator.predict(validation_input_fn,\n",
        "                                    yield_single_examples=False)  # the returned value is a generator that will yield one batch of predictions per next() call\n",
        "predicted_labels = next(predictions)['classes']\n",
        "display_top_unrecognized(validation_digits, predicted_labels, validation_labels, N, 7)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "5tzVi39ShrEL"
      },
      "source": [
        "## Deploy the trained model to ML Engine\n",
        "\n",
        "Push your trained model to production on ML Engine for a serverless, autoscaled, REST API experience.\n",
        "\n",
        "You need the name of your GCS bucket and GCP project for this step. Models deployed on ML Engine autoscale to zero if not used. There will be no ML Engine charges after you are done testing.\n",
        "Google Cloud Storage incurs charges. Empty the bucket after deployment if you want to avoid these. Once the model is deployed, the bucket is not useful anymore."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "3Y3ztMY_toCP"
      },
      "source": [
        "### Configuration"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "both",
        "colab": {},
        "colab_type": "code",
        "id": "VoN13WTwtPVp"
      },
      "outputs": [],
      "source": [
        "PROJECT = \"\" #@param {type:\"string\"}\n",
        "NEW_MODEL = True #@param {type:\"boolean\"}\n",
        "MODEL_NAME = \"estimator_mnist\" #@param {type:\"string\"}\n",
        "MODEL_VERSION = \"v0\" #@param {type:\"string\"}\n",
        "\n",
        "assert PROJECT, 'For this part, you need a GCP project. Head to http://console.cloud.google.com/ and create one.'\n",
        "\n",
        "export_path = os.path.join(MODEL_DIR, 'export', MODEL_EXPORT_NAME)\n",
        "last_export = sorted(tf.gfile.ListDirectory(export_path))[-1]\n",
        "export_path = os.path.join(export_path, last_export)\n",
        "print('Saved model directory found: ', export_path)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "zy3T3zk0u2J0"
      },
      "source": [
        "### Deploy the model\n",
        "This uses the command-line interface. You can do the same thing through the ML Engine UI at https://console.cloud.google.com/mlengine/models\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "nGv3ITiGLPL3"
      },
      "outputs": [],
      "source": [
        "# Create the model\n",
        "if NEW_MODEL:\n",
        "  !gcloud ml-engine models create {MODEL_NAME} --project={PROJECT} --regions=us-central1"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "o3QtUowtOAL-"
      },
      "outputs": [],
      "source": [
        "# Create a version of this model (you can add --async at the end of the line to make this call non blocking)\n",
        "# Additional config flags are available: https://cloud.google.com/ml-engine/reference/rest/v1/projects.models.versions\n",
        "# You can also deploy a model that is stored locally by providing a --staging-bucket=... parameter\n",
        "!echo \"Deployment takes a couple of minutes. You can watch your deployment here: https://console.cloud.google.com/mlengine/models/{MODEL_NAME}\"\n",
        "!gcloud ml-engine versions create {MODEL_VERSION} --model={MODEL_NAME} --origin={export_path} --project={PROJECT} --runtime-version=1.10"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "jE-k1Zn6kU2Z"
      },
      "source": [
        "### Test the deployed model\n",
        "Your model is now available as a REST API. Let us try to call it. The cells below use the \"gcloud ml-engine\"\n",
        "command line tool but any tool that can send a JSON payload to a REST endpoint will work."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "zZCt0Ke2QDer"
      },
      "outputs": [],
      "source": [
        "# prepare digits to send to online prediction endpoint\n",
        "digits = np.concatenate((font_digits, validation_digits[:100-N]))\n",
        "labels = np.concatenate((font_labels, validation_labels[:100-N]))\n",
        "with open(\"digits.json\", \"w\") as f:\n",
        "  for digit in digits:\n",
        "    # the format for ML Engine online predictions is: one JSON object per line\n",
        "    data = json.dumps({\"serving_input\": digit.tolist()})  # \"serving_input\" because that is what you defined in your serving_input_fn: {\"serving_input\": tf.placeholder(tf.float32, [None, 28, 28])}\n",
        "    f.write(data+'\\n')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "n6PqhQ8RQ8bp"
      },
      "outputs": [],
      "source": [
        "# Request online predictions from deployed model (REST API) using the \"gcloud ml-engine\" command line.\n",
        "predictions = !gcloud ml-engine predict --model={MODEL_NAME} --json-instances digits.json --project={PROJECT} --version {MODEL_VERSION}\n",
        "\n",
        "predictions = np.array([int(p.split('[')[0]) for p in predictions[1:]]) # first line is the name of the input layer: drop it, parse the rest\n",
        "display_top_unrecognized(digits, predictions, labels, N, 100//N)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "2a5cGsSTEBQD"
      },
      "source": [
        "## What's next\n",
        "\n",
        "* Learn how to convert an [estimator model to a TPUEstimator model](https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/mnist_tpuestimator.ipynb) to take advantage of [Cloud TPUs](https://cloud.google.com/tpu/docs).\n",
        "* Explore the range of [Cloud TPU tutorials and Colabs](https://cloud.google.com/tpu/docs/tutorials) to find other examples that can be used when implementing your ML project.\n",
        "\n",
        "On Google Cloud Platform, in addition to GPUs and TPUs available on pre-configured [deep learning VMs](https://cloud.google.com/deep-learning-vm/),  you will find [AutoML](https://cloud.google.com/automl/)*(beta)* for training custom models without writing code and [Cloud ML Engine](https://cloud.google.com/ml-engine/docs/) which will allows you to run parallel trainings and hyperparameter tuning of your custom models on powerful distributed hardware.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "XXSk0bENYB7-"
      },
      "source": [
        "## License"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "hleIN5-pcr0N"
      },
      "source": [
        "\n",
        "\n",
        "---\n",
        "\n",
        "\n",
        "author: Martin Gorner\u003cbr\u003e\n",
        "twitter: @martin_gorner\n",
        "\n",
        "\n",
        "---\n",
        "\n",
        "\n",
        "Copyright 2018 Google LLC\n",
        "\n",
        "Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "you may not use this file except in compliance with the License.\n",
        "You may obtain a copy of the License at\n",
        "\n",
        "    http://www.apache.org/licenses/LICENSE-2.0\n",
        "\n",
        "Unless required by applicable law or agreed to in writing, software\n",
        "distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "See the License for the specific language governing permissions and\n",
        "limitations under the License.\n",
        "\n",
        "\n",
        "---\n",
        "\n",
        "\n",
        "This is not an official Google product but sample code provided for an educational purpose\n"
      ]
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "collapsed_sections": [
        "N6ZDpd9XzFeN"
      ],
      "name": "MNIST Estimator.ipynb",
      "provenance": [],
      "toc_visible": true,
      "version": "0.3.2"
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
